# 线程池：一次性开辟一些线程，我们用户直接给线程池子任务提交，线程任务的调度交给线程池来完成

from concurrent.futures import ThreadPoolExecutor


def fun(name):
    for i in range(1000):
        print(name, i)


if __name__ == '__main__':
    # 创建线程池
    with ThreadPoolExecutor(50) as th:
        for i in range(1000):
            th.submit(fun, name=f'子线程{i}')
    # 等待线程池中的任务全部执行完毕，才会继续执行守护线程
    print('over!')
